const { getHomeNewsList } = require("../../utils/newsAPI");

Page({
  data: {
    newsList: [],
    loading: false, // 加载中状态
    noMore: false // 是否无更多数据
  },
  async onLoad() {
    await this.find();
  },
    // 加载新闻数据
    loadNews() {
      const { currentPage, pageSize, newsList } = this.data;
  
      // 若正在加载或无更多数据，直接返回
      if (this.data.loading || this.data.noMore) return;
  
      this.setData({ loading: true });
  
      // 模拟 API 请求
      const newNews = getHomeNewsList("国内", currentPage, pageSize);
  
      setTimeout(() => {
        if (newNews.length === 0) {
          // 无更多数据
          this.setData({ noMore: true, loading: false });
        } else {
          // 合并新数据并更新
          this.setData({
            newsList: [...newsList, ...newNews],
            currentPage: currentPage + 1,
            loading: false
          });
        }
      }, 1000); // 模拟请求延迟
    },
  
    // 页面触底事件
    onReachBottom() {
      console.log("触底加载更多");
      this.loadNews(); // 加载更多新闻数据
    },
  // 点击跳转到新闻详情页
  goToDetail(e) {
    const id = e.currentTarget.dataset.id; // 获取点击的新闻id
    console.log("跳转详情页");
    wx.navigateTo({
      url: `/pages/detail/detail?id=${id}` // 跳转到新闻详情页
    });
  },
  // 收藏与取消收藏切换
  toggleCollect(e) {
    const id = e.currentTarget.dataset.id;
    const index = this.data.newsList.findIndex(item => item.id === id);
    const newsItem = this.data.newsList[index];

    // 切换收藏状态
    newsItem.collected = !newsItem.collected;

    // 更新数据
    this.setData({
      [`newsList[${index}]`]: newsItem
    });

    // 弹出提示
    wx.showToast({
      title: newsItem.collected ? '收藏成功' : '取消收藏成功',
      icon: 'success',
      duration: 2000
    });
  },
  // 轮播图点击事件，跳转到新闻详情页
  goToDetailPage: function (e) {
    const newsId = e.currentTarget.dataset.id; // 获取点击的轮播图的新闻ID
    console.log(newsId);
    wx.navigateTo({
      url: `/pages/detail/detail?id=${newsId}` // 跳转到新闻详情页，并传递新闻ID
    });
  },
  // 获取新闻数据
  async find() {
    wx.showLoading({
      title: '数据加载中...',
    });
    try {
      const newsList = await getHomeNewsList('国内'); // 调用 API 获取数据
      this.setData({ newsList });
      console.log(newsList);
    } catch (error) {
      console.error('数据获取失败', error);
      wx.showToast({
        title: '数据加载失败',
        icon: 'none',
        duration: 2000
      });
    } finally {
      wx.hideLoading(); // 隐藏加载提示
    }
  },
  // 下拉刷新方法
  onPullDownRefresh: async function () {
    console.log("开始下拉刷新");
    await this.find();
    wx.stopPullDownRefresh(); // 停止下拉刷新动画
    wx.showToast({
      title: '刷新完成',
      icon: 'success',
      duration: 2000
    });
  },
});
